-
Notifications
You must be signed in to change notification settings - Fork 7
Add oasis3-mct version 5.2 #367
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I added specific CI manifests to add explicit |
|
But unfortunately the |
|
Doesn't mean anything to me This wasn't tested in #351 nor is it the failure we see normally in esm1.6 (which is gcom) - #342 - although th logs have expired: https://github.com/ACCESS-NRI/access-spack-packages/actions/runs/18839277073/job/53747477537 |
Ah good, then it isn't a known regression. Ok, well I'm happy to remove the |
|
Annoyingly, it built fine with https://github.com/ACCESS-NRI/access-spack-packages/actions/runs/19923566643/job/57122243658?pr=332 Addendum: It didn't build above, it was pulled from a binary cache, but it did build at some point in the past with spack v1.1 |
|
Looks like a different version which built to me: e.g. |
|
Well spotted. I've set the CI to test against I'll remove the |
|
Ok, so 5.2 does not build with |
|
After some futzing around to get v5.2 to start compiling with gcc, here's the actual error I get: /g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/scrip/src/remap_bicubic_reduced.F90:916:25:
908 | CALL MPI_IRecv(grid1_add_map1(buff_base),&
| 2
......
916 | CALL MPI_IRecv(wts_map1(:,buff_base),&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/scrip/src/remap_bicubic_reduced.F90:920:25:
908 | CALL MPI_IRecv(grid1_add_map1(buff_base),&
| 2
......
920 | CALL MPI_IRecv(grid2_frac(ila_mpi_mn(ib_i+1)),&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/scrip/src/remap_bicubic_reduced.F90:941:22:
935 | CALL MPI_Send(grid1_add_map1,num_links_map1,MPI_INT,&
| 2
......
941 | CALL MPI_Send(wts_map1,num_wts*num_links_map1,MPI_DOUBLE,&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/scrip/src/remap_bicubic_reduced.F90:944:22:
935 | CALL MPI_Send(grid1_add_map1,num_links_map1,MPI_INT,&
| 2
......
944 | CALL MPI_Send(grid2_frac(ila_mpi_mn(mpi_rank_map+1)),&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
make[2]: *** [Makefile:42: remap_bicubic_reduced.o] Error 1
[~/gdata/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/util/make_dir @gadi-login-02]$ ml
Currently Loaded Modulefiles:
1) gcc/15.1.0 2) openmpi/5.0.8 3) netcdf/4.9.2 Looks to be an upstream issue that |
|
The cice5 gcc builds have "-fallow-argument-mismatch" if that's any consolation |
|
Hmm - not sure I follow why that argument mismatch error is being generated in the first place though. MPI_Send takes a buffer of arbitrary type, and the datatype itself is one of the parameters. Those seem to have been filled out correctly in the function call itself. From a quick read, StackOverflow opinions seemed to be pretty consistent - "fix your code" - but I don't see what/how to fix. May be the |
|
@micaeljtoliveira clarified that we need to add the compiler flag @anton-seaice suggested. Here's our Zulip convo:
Adding [/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/psmile.MPI1 @gadi-login-01]$ mpifort -fdefault-real-8 -fallow-argument-mismatch -g3 -O2 -march=cascadelake -mtune=sapphirerapids -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/psmile.MPI1 -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/pio -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/mct -Duse_netCDF -Duse_comm_MPI1 -DTREAT_OVERLAY -I/apps/netcdf/4.9.2/include/GNU -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/psmile/include -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/mct -I/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/scrip -c /g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/psmile/src/mod_oasis_load_balancing.F90
f951: Warning: Nonexistent include directory ‘/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/compile_oa3-mct/build/lib/pio’ [-Wmissing-include-dirs]
/g/data/tm70/ms2335/oneapi_compilation_dir/test-upstream-oa3-mct-with-gcc/oasis3-mct-OASIS3-MCT_5.2/lib/psmile/src/mod_oasis_load_balancing.F90:1024:96:
1024 | call oasis_mpi_send(DBLE(lb_diag_buff),0,lb_tag,mpi_comm_global,'oasis_lb_print')
| 1
Error: There is no specific subroutine for the generic ‘oasis_mpi_send’ at (1)I can see that there is a generic, public As a sanity check, I confirmed that I could still compile that source with |
|
The full set of cice5 flags is:
So possible the default real 8 could help ? I don't understand why though |
|
Are their build flags included with oasis3-mct? It's unclear to me! |
|
@anton-seaice That did the trick - compiling with gfortran succeeds with FWIW, I checked that upstream v6 also compiles with these GCC flags. Sidenote: v6 seems to have fixed the issue of massive binary files in the upstream repo - v6 tarball is 63MB vs 239MB for v5. |
You are supposed to create your own include file that defines the compiler flags, and the NETCDF include and link lines, e.g., make.nci |
|
Wow, so much activity. Thanks for the sleuthing. Could we solve this by injecting the required flags from the CI build manifest? |
|
My reasoning for this approach: we're not actually deploying with |
|
I am in favour of going hard in the CI with different compilers and code quality check flags, and failing the build for specific code-smell issues. At the same time, it would be convenient to see the build logs when the build fails - e.g., COMP.log and COMP.err in the |
Me too, but it needs to be implemented with care. Feel free to add what you want. But any PR needs to pass before it gets merged. We can't have routine fails of CI tests being ignored. Also I'd hold off until after the spack v1 merger, as it would be way too much of a headache to port all the changes to the spack v1.x PR.
Can you check that an issue doesn't already exist for this, and if not make one? |
|
The minor annoyance in adding build flags to the spack manifest, is we will have to repeat it in the manifests in the |
For build CI? Yeah I suppose. It didn't work anyway. I am disabling |
Would have been good to know why the build flags that fixed the compile for me do not fix the compile in the CI. But agree that disabling the gcc checks for now is the way to go. And to clarify, when I say to go hard in the CI, I mean on the repo CI, i.e., |
anton-seaice
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Did not check properly for any version logic. |
I could, but I'm looking for the smallest possible change at this point and we're not using |
Ok, turned on the SSH access and confirmed for version is correctly set: |
|
FYI, oasis3-mct build error log was at |
|
Hi @aidanheerdegen , Do #367 (comment) . i.e. Modify the oasis3-mct SPR. |
harshula
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, please remember to do a squash merge.
Add oasis3-mct v5.2, points at newly created branch clone from upstream GitLab.
Closes #366